package com.lyl.xxx.modules.web.montior.controller;

import com.github.pagehelper.PageInfo;
import com.lyl.xxx.modules.system.account.entity.SysOperLog;
import com.lyl.xxx.modules.system.account.service.SysOperLogService;
import com.lyl.xxx.modules.web.montior.model.constant.BizType;
import com.lyl.xxx.modules.web.montior.model.dto.SysOperLogListDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/sysOperLog")
@RequiredArgsConstructor
public class SysOperController {
    private final SysOperLogService sysOperLogService;

    /**
     * 操作日志
     *
     * @param dto 请求参数
     * @return 操作日志列表
     */
    @GetMapping("/list/{pageNo}/{pageSize}")
    public PageInfo<SysOperLog> list(
            @PathVariable Integer pageNo,
            @PathVariable Integer pageSize,
            @Valid SysOperLogListDTO dto) {
        return sysOperLogService.list(pageNo, pageSize, dto);
    }

    /**
     * 根据id查询操作日志
     *
     * @param id 主键id
     * @return 操作日志
     */
    @GetMapping("/{id}")
    public SysOperLog getById(@PathVariable Long id) {
        return sysOperLogService.getById(id);
    }

    /**
     * 获取业务类型
     * @return 集合
     */
    @GetMapping("/bizType/list")
    public List<BizType> getBizType() {
        return Arrays.asList(BizType.values());
    }

}
